package com.vvv.designpattern.controller;

import com.vvv.designpattern.items.composite.ProductComposite;
import com.vvv.designpattern.pojo.ProductItem;
import com.vvv.designpattern.service.ProductItemService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author vvv
 * @date 2023-11-18 16 21
 * discription 注意！这里的测试需要
 * 第一步情况key = cache:productComposite的redis缓存数据
 * 第二部先调用/product/fetchAllItems，将数据写入redis中
 *
 * 这里的业务是：
 * 将商品类目信息从数据库的表结构构建成树形结构存入到redis，
 * 同时提供删除某个商品类目的方法和添加某个商品类目的方法。
 */
@RestController
@RequestMapping("/product")
public class ProductItemController {
    @Resource
    private ProductItemService productItemService;

    @PostMapping("/fetchAllItems")
    public ProductComposite fetchAllItems() {
        return productItemService.fetchAllItems();
    }

    /**
     * test data: {"name": "男鞋", "pid": 1}
     * @param item
     * @return
     */
    @PostMapping("/addItems")
    public ProductComposite addItems(@RequestBody ProductItem item) {
        return productItemService.addItems(item);
    }

    /**
     * test data: {"id": 11, "pid": 1}
     * @param item
     * @return
     */
    @PostMapping("/delItems")
    public ProductComposite delItems(@RequestBody ProductItem item) {
        return productItemService.delItems(item);
    }

}
